// 引入对象
const Koa = require('koa');
const koaBody = require('koa-body');
const Router = require('koa-router')//引入koa-router
// 引入内部方法或属性
// const（{方法或属性名}）= reqire('koa');
const tagRouter =require("./routers/tag.router")
const userRouter =require("./routers/user.router") //引入过来的
const contentRouter =require("./routers/content.router")
//创建对象
const app = new Koa();
app.use(koaBody());


const  router = new Router();//创建路由支持传递参数

tagRouter(router);
userRouter(router)//函数 传东西 里面是第14行的
contentRouter(router)

// response
// app.use(async (ctx,next) => {
//   ctx.body = 'Hello Koa2';
//   next();
//   //改了不出 
//   //需要重新生成
//   //他不会自动生成 需要自己从新运行
//   // 按ctrl+c 下面就可以从新跑一次
//   //按照nodemon 会自动跑
// });

// router.get("/", async ctx=>{
//   //url参数  使用query
//   // 请求地址 url 网络路径后面的所有东西  http://localhost:3000后面的所有东西
//   // console.log(ctx.URL);
//   console.log(ctx.query);
//   // console.log(ctx.querystring);
// })
// //根目录 返回地址(ctx 随便写 形参) 
// // ctx现在就是获取到的东西

// //postman
// router.post("/a",async ctx=>{
//   console.log(ctx.url);
//   console.log(ctx.request.body);
//   ctx.body="请求成功"
// })



// 调用router.routes()来组装匹配好的路由，返回一个合并好的中间件
// 调用router.allowedMethods()获得一个中间件，当发送了不符合的请求时，会返回 `405 Method Not Allowed` 或 `501 Not Implemented`
app.use(router.routes());//使用路由对象里的所有路由 上面配置路由
app.use(router.allowedMethods({ 
    //这里面所有支持的方法 可以为空
    // throw: true, // 抛出错误，代替设置响应头状态
    // notImplemented: () => '不支持当前请求所需要的功能',
    // methodNotAllowed: () => '不支持的请求方式'
}));




//监听  locallhost：3000 端口号  
app.listen(3000,()=>{
  console.log("http://localhost:3000")
});
